ديف أوبس

أساسيات SQL في PostgreSQL

استخدام أساسيات SQL في PostgreSQL

في عالم قواعد البيانات، يُعتبر SQL (Structured Query Language) أحد أهم الأدوات المستخدمة في إدارة البيانات وتنظيمها. إنه اللغة الرئيسية التي تُستخدم لاستعلام البيانات، تحديثها، إضافة سجلات جديدة، وحذف البيانات من قواعد البيانات العلائقية. من بين الأنظمة الشائعة لإدارة قواعد البيانات العلائقية، يأتي PostgreSQL كواحد من أكثر الأنظمة استخدامًا في تطبيقات المؤسسات والمشاريع الكبرى بفضل قوته ومرونته.

تعتبر PostgreSQL من أنظمة إدارة قواعد البيانات مفتوحة المصدر، والتي تدعم SQL بالكامل، إضافة إلى ميزات متقدمة من حيث الأداء والأمان. في هذا المقال، سنتناول أساسيات SQL في PostgreSQL وكيفية استخدامها بشكل فعال لإدارة البيانات وتحقيق أقصى استفادة من هذا النظام القوي.

1. مقدمة عن PostgreSQL

PostgreSQL هو نظام إدارة قواعد بيانات علائقية مفتوح المصدر يتميز بدعمه الكبير للمعايير الخاصة بـ SQL. يمكنه التعامل مع قواعد البيانات التي تحتوي على ملايين السجلات بكفاءة عالية ويعتبر مثالياً للمشاريع التي تتطلب درجة عالية من الأداء، بالإضافة إلى دعمه للعديد من الوظائف المتقدمة مثل التكرار والتجزئة (partitioning)، وتخزين البيانات غير المنظمة، والاستعلامات الجغرافية.

2. أساسيات SQL في PostgreSQL

عند البدء في استخدام PostgreSQL، يجب أن تتعرف أولاً على أهم أساسيات SQL التي تُستخدم بشكل شائع لإدارة البيانات. فيما يلي بعض المفاهيم الأساسية:

2.1 الاستعلامات الأساسية (SELECT)

أهم استعلامات SQL هو استعلام SELECT، والذي يُستخدم لاستخراج البيانات من الجدول. في PostgreSQL، يمكن استخدام هذا الاستعلام بطرق متعددة لانتقاء البيانات المطلوبة.

مثال على استعلام بسيط لاستخراج البيانات:

sql
SELECT column1, column2 FROM table_name;

يمكنك استخدام هذا الاستعلام لاسترجاع بيانات من عمود أو أكثر في جدول معين.

2.2 التصفية باستخدام WHERE

عند العمل مع كميات كبيرة من البيانات، من المهم أن يكون لديك آلية لتصفية البيانات التي تحتاج إليها فقط. يمكن ذلك باستخدام جملة WHERE، التي تسمح لك بتحديد الشروط التي يجب أن تتوافق مع البيانات المسترجعة.

مثال:

sql
SELECT name, age FROM employees WHERE age > 30;

هنا، يتم استرجاع الأسماء والأعمار فقط للموظفين الذين يزيد عمرهم عن 30 عامًا.

2.3 الترتيب باستخدام ORDER BY

بمجرد استخراج البيانات، قد تحتاج إلى ترتيبها بناءً على معيار معين مثل التاريخ أو الرقم أو الاسم. يتم ذلك باستخدام جملة ORDER BY.

مثال على ترتيب البيانات:

sql
SELECT name, salary FROM employees ORDER BY salary DESC;

في هذا المثال، يتم ترتيب البيانات بناءً على الراتب بترتيب تنازلي (DESC)، مما يعني أن أعلى الرواتب تظهر أولاً.

2.4 الانضمام بين الجداول (JOIN)

في معظم قواعد البيانات العلائقية، من المحتمل أن تحتاج إلى دمج البيانات من جداول متعددة. يتم ذلك باستخدام عملية JOIN. هناك عدة أنواع من الانضمامات مثل INNER JOIN, LEFT JOIN, RIGHT JOIN و FULL JOIN.

مثال على استخدام INNER JOIN:

sql
SELECT employees.name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.department_id;

في هذا الاستعلام، يتم دمج البيانات من جدول الموظفين مع جدول الأقسام بناءً على المعرف المشترك بينهما.

2.5 التجميع باستخدام GROUP BY

في بعض الأحيان، تحتاج إلى تجميع البيانات بناءً على قيم معينة، مثل حساب متوسط الراتب لكل قسم. يُمكنك استخدام GROUP BY لهذا الغرض، والذي يسمح بتجميع السجلات حسب قيمة معينة من عمود أو أكثر.

مثال:

sql
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;

هنا، يتم حساب متوسط الرواتب لكل قسم من خلال تجميع الموظفين حسب department_id.

2.6 الفرز باستخدام HAVING

بينما يتم استخدام WHERE لتصفية السجلات قبل عملية التجميع، يتم استخدام HAVING لتصفية البيانات بعد تجميعها. غالبًا ما يتم استخدام HAVING مع GROUP BY.

مثال:

sql
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 50000;

في هذا المثال، يتم تصفية الأقسام التي يكون فيها متوسط الراتب أعلى من 50,000.

3. إدخال البيانات وتحديثها وحذفها

بعد تعلم كيفية استعلام البيانات، من الضروري معرفة كيفية إدخال بيانات جديدة، وتحديث البيانات الموجودة، وحذف السجلات غير المطلوبة.

3.1 إدخال البيانات باستخدام INSERT

يتم استخدام INSERT لإضافة بيانات جديدة إلى الجداول.

مثال:

sql
INSERT INTO employees (name, age, department_id, salary) VALUES ('John Doe', 28, 3, 60000);

هنا، يتم إضافة موظف جديد إلى جدول الموظفين.

3.2 تحديث البيانات باستخدام UPDATE

لتحديث البيانات في جدول موجود، يتم استخدام UPDATE.

مثال:

sql
UPDATE employees SET salary = 65000 WHERE employee_id = 101;

هذا الاستعلام يقوم بتحديث الراتب للموظف الذي لديه المعرف 101 إلى 65,000.

3.3 حذف البيانات باستخدام DELETE

إذا كنت بحاجة إلى حذف بيانات من جدول، يمكنك استخدام DELETE.

مثال:

sql
DELETE FROM employees WHERE employee_id = 101;

هذا الاستعلام يحذف الموظف الذي يحمل المعرف 101.

4. التعامل مع المعاملات (Transactions)

PostgreSQL يدعم المعاملات التي تتيح لك تنفيذ مجموعة من العمليات كوحدة واحدة. المعاملات تضمن أن جميع العمليات إما تنجح بالكامل أو تفشل معًا.

لإدارة المعاملات في PostgreSQL، يمكنك استخدام الأوامر التالية:

  • BEGIN: لبدء المعاملة.

  • COMMIT: لتأكيد المعاملة.

  • ROLLBACK: للتراجع عن المعاملة في حالة حدوث خطأ.

مثال:

sql
BEGIN; UPDATE employees SET salary = 70000 WHERE employee_id = 102; DELETE FROM employees WHERE employee_id = 101; COMMIT;

5. إنشاء وتعديل الجداول

في PostgreSQL، يمكنك إنشاء جداول جديدة باستخدام الأمر CREATE TABLE. هذا يتيح لك تحديد الأعمدة وأنواع البيانات التي يجب أن تحتوي عليها.

مثال على إنشاء جدول:

sql
CREATE TABLE employees ( employee_id SERIAL PRIMARY KEY, name VARCHAR(100), age INT, department_id INT, salary DECIMAL(10, 2) );

هنا، تم إنشاء جدول employees مع الأعمدة المحددة.

إذا كنت بحاجة إلى تعديل جدول موجود، يمكن استخدام الأمر ALTER TABLE لإضافة أو تعديل أو حذف الأعمدة.

مثال:

sql
ALTER TABLE employees ADD COLUMN email VARCHAR(100);

6. الوظائف المتقدمة في PostgreSQL

بالإضافة إلى الأساسيات، يقدم PostgreSQL مجموعة من الوظائف المتقدمة التي تساعد في تحسين الأداء والتعامل مع البيانات بشكل أكثر كفاءة. من أبرز هذه الوظائف:

  • الدوال المدمجة: مثل SUM(), AVG(), MAX(), و MIN() التي تُستخدم لتنفيذ العمليات الرياضية على البيانات.

  • الاستعلامات الفرعية (Subqueries): يمكن استخدام استعلامات فرعية داخل استعلامات أخرى لزيادة تعقيد عمليات البحث.

  • التجزئة: يمكن استخدام تجزئة البيانات لتحسين الأداء عند التعامل مع كميات ضخمة من البيانات.

7. النسخ الاحتياطي والاستعادة في PostgreSQL

من أهم المهام التي يجب أن يتمتع بها أي مدير قاعدة بيانات هي القدرة على أخذ نسخ احتياطية للبيانات واستعادتها عند الحاجة. يوفر PostgreSQL أدوات مثل pg_dump لأخذ نسخ احتياطية و pg_restore لاستعادة البيانات.

الخلاصة

يُعد PostgreSQL واحدًا من أقوى وأشهر أنظمة إدارة قواعد البيانات العلائقية المفتوحة المصدر. باستخدام SQL، يمكن للمطورين والمديرين العمل بكفاءة في استعلام وتحديث البيانات، وإنشاء الجداول، وتنفيذ المعاملات. من خلال فهم الأساسيات المذكورة أعلاه، يمكن الاستفادة من PostgreSQL لتحقيق أداء عالي في التطبيقات الكبيرة والمعقدة.